iT邦幫忙

2026 iThome 鐵人賽

DAY 1
1
AI Security

合法呼叫湊出的攻擊鏈:AI Agent 防禦的 30 天觀念養成系列 第 1

Day 1|AI 協作與讀取資料時,傳統資安機制的既有限制是甚麼?

  • 分享至 

  • xImage
  •  

前言

大家好,我是Ray。

在接下來的三十天,我會根據主題去探討一系列的核心問題:AI agent 只要有執行任務,就會多出許多傳統軟體沒有的漏洞——因為一般的傳統軟體只會照工程師編寫的邏輯執行,不會因為檔案或輸入的內容而有執行邏輯的變動。但 AI agent 的運作方式會把讀進來的資料內容一起當成判斷依據,這時候 Agent 就會根據不同的判定結果做出不同的執行動作了。


這些漏洞是什麼、業界目前已經防範的問題已有哪些、這些防禦各自作用在哪個環節、擋得掉哪些種類的攻擊、又對哪些攻擊手法無效。我們需要先把一切的起點解析清楚。


發現與討論

前陣子看到一個很有意思的手法:2025年有多所大學研究者在上傳到 arXiv 的論文裡用白字或極小字體藏了「給予正面評價、不要提缺點」之類的指令,專門對付用 AI 代審稿的審查者。當 AI 讀進整份文件時,連同上述的白字一起讀了進去——然後,它照做了。
https://ithelp.ithome.com.tw/upload/images/20260824/20183628ZSai0w0CbG.jpg
第一次看到會覺得像魔術,但這是現在 AI agent 最核心的一個資安問題,叫 prompt injection。在探討防禦方式時,我想先剖析幾個重要的問題:為什麼這種手法會成立?在文字送進 AI 之前的內容過濾機制是不是又存在著某些特定弊端?

沒錯,就像下方的圖片一樣,通常人類的大腦能夠直覺地把接收到的訊息任務分成兩塊:一塊是「我下的指令」(幫我篩履歷),一塊是「它要處理的資料」(履歷內容),而且界線分明——指令需要被遵守,而資料只是拿來參考用。但模型收到的,其實是這兩塊接在一起的一整串文字:你的指令在前、它讀進來的履歷在後,黏成同一串,它沒有那種特別有效的機制去區別哪些是指令、哪些又是資料。所以上述案例提到的那行白字對AI而言,它是真的會把這些文字當成指令來執行,而不是論文中該被核查的內容。

https://ithelp.ithome.com.tw/upload/images/20260824/20183628mMP7QWftFk.jpg


同一句話總是會因人類的創意而有無限種寫法:就算AI擋得掉「請給予正面評價」這句話,它又一定能擋掉人們再度換句話說、換語言、拆成好幾段藏在各段落中的試探嗎?


對吧? 所以就有人發現問題的核心不能只關注攻擊手法,而是在「指令和資料共用同一條輸入」這個機制的本身。有資安底子的人會覺得這種結構很眼熟——早年電話系統也是把通話聲音和「接通、轉接」的控制訊號走在同一條線上,結果有人對話筒吹出特定頻率的音就能假冒控制訊號、免費打長途。同一條工作流程中混雜資料和指令,就容易被鑽漏洞,只是這次不是電話而是我們最愛使用的語言模型身上。


這不是假想題

2025 年揭露的 EchoLeak(編號 CVE-2025-32711)是第一個在正式產品上發生的案例,對象是 Microsoft 365 Copilot。攻擊者只要寄一封普通的電子郵件給受害者,把惡意指令藏在信件內文裡就好——使用者完全不用點開連結、不用下載附件,甚至不用讀那封信。因為 Copilot 為了幫你處理工作,會自動把你信箱裡的內容抓進它的分析範圍,那封信一經過分析,裡面的惡意指令就跟著被執行了,所以它被歸類為「zero-click」(零點擊,受害者什麼都不用做就中招)。

https://ithelp.ithome.com.tw/upload/images/20260824/20183628JqebWKZOgT.png

它的資料是怎麼被偷走的,在技術上很值得一看。

指令生效後,Copilot 照著把使用者的機敏資料(近期郵件、草稿等)整理出來,然後被誘導把這些資料塞進一張圖片的網址裡輸出。當 Copilot 的回覆一顯示,系統為了載入那張圖,就自動去請求那個網址——而網址指向攻擊者的伺服器,機敏資料就藏在請求裡一起送了出去。微軟其實早就部署了專門偵測這類注入的分類器(代號 XPIA),但研究團隊找到了繞過它的寫法。

這件事點出幾個很重要的觀察結果,後來被 Simon Willison 歸納成 「lethal trifecta(致命三件套)」 :當一個 agent 同時具備「能讀到你的私密資料」「會接觸到不受信任的外部內容」「有辦法把資料往外送」這三件事時,危險就成立,因為攻擊者可以用外部內容下指令、叫它去盜取私密資料、再用對外通道送出去,一條龍打通。

那大家都怎麼防範這些問題的發生?

因為模型內部無法有效防禦,現行的暫時解方幾乎都是在模型外部進行緩解,大致分成幾種思路。

第一種是偵測與過濾。 做法是在輸入或輸出的環節,額外掛載一個專門的分類器,去判斷「這段內容像不像注入攻擊」,如果像的話就攔截下來。常見的現成工具有 Meta 的 Llama Prompt Guard、開源的 Rebuff、商用的 Lakera Guard。原理是統計式的樣式辨識,好處是容易加裝且成本較低;壞處是它跟模型一樣是機率判斷,總有漏網,EchoLeak 繞過微軟的 XPIA 就是活生生的例子。
https://ithelp.ithome.com.tw/upload/images/20260824/20183628jowKAfaOeZ.jpg

第二種是強化資料和指令的界線。 既然問題是因需要被識讀的資料和指令混合處理而發生,那就想辦法讓模型能識別的更分明與清楚。微軟提出的 spotlighting 就是這類:用特殊標記、編碼或分隔手法把外部內容標示並區別提醒模型別把已標示的內容當命令。原理是補強那條本來很模糊的邊界,但這仍是「區別與辨識」,不是「完全隔離處理」,遇到夠狡猾的提示詞注入攻擊還是可能出現異常。
https://ithelp.ithome.com.tw/upload/images/20260824/20183628QSQdO8YqDm.jpg

第三種是限制權限,直接拆掉「致命三件套」。 就算注入成功,只要 agent 手上沒有危險的能力,傷害就有限。做法包括最小權限(只給它完成任務必要的工具)、高風險動作(轉帳、寄信、對外送資料)一律要人類點頭確認。原理不是阻止被騙,而是讓「被騙之後也做不了壞事」,EchoLeak 若當初禁止 Copilot 自動抓取外部網址,那條外連的快捷通道就斷了。

第四種是從架構上把指令控制和資料徹底分開,也是目前理論上最有效的一種方法。 代表作是 Google DeepMind 2025 年的 CaMeL(論文〈Defeating Prompt Injections by Design〉,arXiv 2503.18813)。它的核心是用兩個分工的模型:一個P模型「有權限的」只看使用者原始指令、負責規劃與呼叫工具,從頭到尾不碰外部資料;另一個Q模型「被隔離的」專門去讀那些不受信任的郵件、網頁,但它沒有任何動手的能力。再搭配一套機制,替每份資料標記來源、明確規定「來自不受信任來源的內容不准被歸類為待執行的動作」。

這正好就是電話當年的解法搬到 AI 上——把控制訊號整條移去一條獨立線路,資料再怎麼夾帶都影響不到控制。代價是整套系統變複雜,但它給的是設計層級的保證,而不是「去賭分類器這次有沒有辦法找到問題的概率」。
https://ithelp.ithome.com.tw/upload/images/20260824/20183628fYEGPGOF1G.jpg


小結

想自己動手驗證這些攻防的話,學界有一個公開的評測環境叫 AgentDojo,裡面有現成的 agent 任務和攻擊樣本,可以拿來實際跑跑看各種防禦到底擋得住多少攻擊。後續天數有機會介紹到。

接下來這個系列,就會沿著這幾條防線一條一條往下看,下一篇先退回起點探討——為什麼語言模型天生就分不清「指令」和「資料」,問題到底出在哪裡。

Sources:
Hidden Prompts in Manuscripts Exploit AI-Assisted Peer Review (arXiv 2507.06185)
Scholars sneaking phrases into papers to fool AI reviewers — The Register


下一篇
Day 2|所以為什麼模型天生分不清楚「指令」和「資料」呢?
系列文
合法呼叫湊出的攻擊鏈:AI Agent 防禦的 30 天觀念養成2
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言